1 Typst 语法完整指南
本指南全面介绍 Typst 的语法体系。Typst 是一种标记语言,通过简单的语法即可完成常见的排版任务。如果你是初次接触 Typst,建议先阅读官方教程 https://typst.app/docs/tutorial/,再回到本指南深入了解各项特性。
1.1 三种模式
Typst 拥有三种语法模式:标记模式(Markup)、数学模式(Math) 和代码模式(Code)。
| 模式 | 进入语法 | 示例 |
| 标记模式 | 默认 | 默认即为标记模式 |
| 代码模式 | # | #(1 + 2) |
| 数学模式 | $ | $x^2$ |
| 标记内容 | [ .. ] | let name = [Typst!] |
1.2 标记模式
标记模式是 Typst 文档的默认模式,为最常见的文档元素提供了内置标记语法。大多数语法元素只是对应函数的快捷方式。
1.2.1 段落与换行
- 段落中断:空行
- 行内换行:反斜杠
\
下面展示效果:
这是第一段。
这是第二段,与第一段之间有一个空行。 这一行后面有一个换行符
这是换行后的内容。
1.2.2 强调与样式
- 着重强调(加粗):
*strong*→ 效果:加粗 - 强调(斜体):
_emphasis_→ 效果:斜体 - 原始文本(代码):反引号
print(1)→ 效果:print(1)
多个样式可嵌套,如 加粗斜体。
1.2.3 标题
使用 = 字符创建标题,= 的数量决定标题层级。
2 一级标题
2.1 二级标题
2.1.1 三级标题
(本指南中的标题即为示例。)
2.1.2 列表
- 无序列表:行首使用
- - 有序列表:行首使用
+ - 术语列表:行首使用
/ Term: description - 列表可以嵌套,通过缩进来实现
示例:
- 项目一
项目二
- 子项目一
- 子项目二
- 第一项
- 第二项
- Typst
- 一款现代排版工具
- LaTeX
- 传统的排版系统
2.1.3 链接与引用
- 链接:直接输入 URL,如 https://typst.app
- 标签:
<intro>(定义在标题后) - 引用:
@intro(引用下方标签)
3 引言
如 Section 3 所述,标签引用非常方便。
3.0.1 代码表达式
使用 # 在标记中嵌入代码表达式。表达式结束后自动恢复标记模式。如需强制结束表达式解析,可使用分号 ;。
示例:当前日期是 2026-07-01 圆周率约等于 3.14159 函数调用
3.0.2 注释与转义
- 行注释:
// 注释内容 - 块注释:
/* 注释内容 */ - 转义字符:反斜杠
\,例如\#显示\#
如需显示 # 符号,请使用 \#,即 #。
3.0.3 快捷符号
Typst 提供了多个快捷符号:
~:不间断空格(例如 “Mr. Smith”)---:长破折号(em dash)——用于句子停顿--:中破折号(en dash)–用于数字范围
3.1 数学模式
数学模式用于排版数学公式,通过 $ 字符包裹。如果公式首尾各至少有一个空格(如 $ x^2 $),将独立成块;如果没有空格(如 $x^2$),则为行内公式。
3.1.1 基础数学语法
行内公式:𝑥2 块级公式:
3.1.2 上下标
- 下标:
_ - 上标:
^
示例:𝑥1, 𝑥2, 𝑥12, 𝑥{𝑎
3.1.3 分数
使用 / 书写分数。
示例:1+𝑎
3.1.4 对齐与换行
- 对齐点:
& - 数学换行:
\
示例:
3.1.5 数学符号与变量
- 变量访问:
$#x$(引用脚本变量) - 预定义符号:
$pi$,$alpha$ - 字段访问:
$arrow.r.long$ - 隐式乘法:
$x y$表示 𝑥 乘以 𝑦 - 快捷符号:
$->$,$!=$,$<=$
示例:𝜋≈3.14,𝑥𝑦,
3.1.6 数学中的文本
在数学公式中嵌入普通文本:
示例:𝑎
3.2 代码模式与脚本
Typst 内置了强大的脚本语言,可以自动生成文档和实现丰富的样式。
3.2.1 代码块
使用 { ... } 创建代码块,多个表达式由换行符或分号分隔。每个表达式的输出值会被合并为代码块的值。
示例:计算结果 3
3.2.2 内容块
使用 [ ... ] 创建内容块,将标记内容作为可编程的值。内容块产生 content 类型的值。
示例: 欢迎使用 Typst!
- 项目一
- 项目二
3.2.3 变量绑定
使用 let 进行变量绑定。= 右侧的值赋给变量,若省略赋值则初始化为 none。
示例: 当前版本:0.13
3.2.4 函数定义
使用 let 绑定定义函数,绑定名称后跟参数列表。参数列表可包含位置参数、带默认值的命名参数和参数接收器。
示例: 5 的平方是 25
你好,世界! 你好,Typst!
这是高亮文本
3.2.5 条件判断
Typst 支持 if 条件判断。
示例: 及格了!
3.2.6 循环
Typst 支持 for 和 while 两种循环。
示例(for 循环): 第 1 次 第 2 次 第 3 次
示例(while 循环): 3
3.3 样式设置
Typst 通过 set 和 show 规则实现自动化样式设置。
3.3.1 Set 规则
set 规则为函数设置默认参数,影响后续所有使用。
示例: 这段文本使用 12pt 字体。
4 标题会自动编号
4.0.1 Show 规则
show 规则用于深度定制特定类型元素的外观。基本形式为 show 选择器: set 规则。
示例: 这是 强调文本,现在显示为红色。
自定义标题
模块与导入
Typst 支持从其他文件或包中导入内容。
示例: 2 的平方根是 1.4142135623730951
常用内置函数速查
| 函数 | 用途 |
text | 设置文本样式(字体、大小、颜色等) |
heading | 创建标题 |
list / enum | 创建无序/有序列表 |
image | 插入图片 |
rect / square | 绘制矩形/正方形 |
circle | 绘制圆形 |
line | 绘制线条 |
grid / table | 创建网格/表格 |
figure | 创建带标题的图表 |
link | 创建超链接 |
进一步学习
- 官方文档:https://typst.app/docs/reference/
- 语法参考:https://typst.app/docs/reference/syntax/
- 脚本参考:https://typst.app/docs/reference/scripting/
- 数学参考:https://typst.app/docs/reference/math/
- 样式指南:https://typst.app/docs/reference/styling/
关于导入
— 指南说明:本文档涵盖了 Typst 的核心语法。随着 Typst 的持续发展,建议定期查阅官方文档获取最新信息。
评论 (0)
登录后可以发表评论。